"""
find() find_all() select()
1.查找标签
2.查找标签的文本内容
3.查找某标签的属性值
4.查找某标签内的标签
"""

import requests
from bs4 import BeautifulSoup

url = 'https://www.baidu.com/'
# 构造字典(请求头)
h = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
# get请求:url,包含User-Agent的请求头
r = requests.get(url, headers=h)
# 将数据写入文件
with open('baidu.html', 'w', encoding='utf-8') as f:
    f.write(r.content.decode())
# 2.利用bs4解析baidu.html文件
# 1)构造bs4对象
soup = BeautifulSoup(r.content.decode(), 'lxml')
# 1.查找标签：查找div标签，且该标签的类名为title-text c-font-medium c-color-t
# 注意:属性是字典结构(key:value)
r1 = soup.find('div', {'class': 'title-text c-font-medium c-color-t'})
print(r1)
# 2.查找标签的文本内容:text string
r2 = soup.find('div', {'class': 'title-text c-font-medium c-color-t'}).string
print(r2)
# 3.查找某标签的属性值
# 获取百度热榜的6条文本内容和详细的url
# r3：列表
r3 = soup.find_all('li', {'class': 'hotsearch-item'})
#将解析出的内容保存在列表中
list_data=[]
for e in r3:
# e是每一个li
#获取文本内容,文本内容是li中的第二个span
    name=e.select('span')[1].string
    # print(name)
#获取url.url是li中a标签的href
    url=e.find('a')['href']
    # print(url)
    #将文本内容和url构造成字典
    data={'标题':name,'详情链接':url}
    # print(data)
    #将字典保存在列表
    list_data.append(data)
#将列表写入文件
# print(list_data)
with open('baidu.txt','w',encoding='utf-8') as f:
    #文件写入,参数是str
    f.write(list_data.__str__())